using System;
using System.Collections.Generic;
using System.Text;
using Reflector.CodeModel;

namespace Doubler.Helpers
{
    public class VisibilityConfiguration : IVisibilityConfiguration
    {
        #region IVisibilityConfiguration Members

        private bool _Assembly;
        private bool _Family;
        private bool _FamilyAndAssembly;
        private bool _FamilyOrAssembly;
        private bool _Private;
        private bool _Public;

        public bool Assembly
        {
            get 
            { 
                return _Assembly;
            }
            set
            {
            	_Assembly = value;
            }
        }

        public bool Family
        {
            get 
            { 
               return _Family;
            }
            set
            {
            	_Family = value;
            }
        }

        public bool FamilyAndAssembly
        {
            get 
            {
                return _FamilyAndAssembly;
            }
            set
            {
            	_FamilyAndAssembly = value;
            }
        }

        public bool FamilyOrAssembly
        {
            get 
            {
                return _FamilyOrAssembly;
            }
            set
            {
            	_FamilyOrAssembly = value;
            }
        }

        public bool Private
        {
            get 
            {
                return _Private;
            }
            set
            {
            	_Private = value;
            }
        }

        public bool Public
        {
            get
            {
                return _Public;
            }
            set
            {
            	_Public = value;
            }
        }

        #endregion

        public static VisibilityConfiguration PublicConfiguration
        {
            get
            {
                VisibilityConfiguration Visability = new VisibilityConfiguration();
                Visability.Public = true;
                return Visability;
            }
        }


        public static VisibilityConfiguration PrivateConfiguration
        {
            get
            {
                VisibilityConfiguration Visability = new VisibilityConfiguration();
                Visability.Private = true;
                return Visability;
            }
        }
    }
}
